What happens if nodes have different P2P versions during discovery? My understanding is that nodes connecting to each other to exchange messages starts with a version handshake such that each node sends its P2P protocol version and gets an acknowledgement and vice versa. If the nodes are running different versions then communication cannot continue.
So according to this developer reference would it be correct to conclude that a node running Bitcoin Core v0.13.2 and another running on release v0.13.0 would not communicate?
Also, if a significant number of nodes run different protocol versions, is this situation what would result in a hard fork?
If the nodes are running different versions then communication cannot continue.

That is incorrect. If two nodes interact which have different versions, they just communicate using the lower of the two versions.