-p especifica o protocolo, enquanto -m especifica o módulo de correspondência que é usado. O módulo correspondente pode ter um tipo diferente ou você pode especificar vários módulos lá. É por isso que você precisa de bandeiras separadas. Veja a seção de manual do iptables MATCH EXTENSIONS para os vários usos de -m.
No entanto, no seu caso -p x implica -m x , então a segunda regra funciona igualmente bem como a primeira. A terceira regra é inválida. Embora -m possa ficar sozinho em alguns casos, você tem que usá-lo ao longo de -p aqui, pois você não pode usar um módulo de correspondência (protocolo) sem explicitamente especificar o protocolo.