You have to understand that the word order in German clauses is not subject–predicate–object as in English.
Rather than that, the dependent clause word order is subject–object–predicate and the main clause word order is only slightly different: it's topic–v2 verb–subject–object–predicate.
Now you may ask, what the hell is a topic? Fortunately English has this, too:
In winter, we want to go to the Alps.
Im Winter wollen wir in die Alpen fahren.
I marked the verbs so you can see the crucial difference between the English and the German sentence. In English, the topic goes in a tiny extra clause in front while in German, it simply occupies the position in front of the V2 verb. The V2 verb does what the comma does in English.
And while in English only adverbials may be the topic, there's no such limitation in German. Any item but the V2 verb itself may be the topic.
Wir wollen im Winter in die Alpen fahren. (subject wir is the topic)
In die Alpen wollen wir im Winter fahren. (directional adverbial in die Alpen is the topic)
Fahren wollen wir im Winter in die Alpen. (action fahren is the topic)
So what is that es in your example?
Es kommen keine Tauben.
It's not the subject. It's an expletive, a dummy. You can use it if you don't want to set a topic. In colloquial German, it's even dropped and people say:
Kommen keine Tauben. (colloquial!)
But why do people say that and not:
Keine Tauben kommen.
Because that would set the topic as keine Tauben and that means that keine Tauben was something we talked about before. Which is likely not what happened as people rarely talk about specific things that are not there.