A. I found a diagram for a two nodes configuration (page 4 of StarWind Native SAN: Providing HA Shared Storage for Hyper-V). It seems that the heartbeat channel is using the same switch as the SAN traffic. Is that correct? Do we need a separate NIC card for heartbeat?
Yes, this is correct. HeartBeat is simple ping signal, that have Node Health Status Check function, so it wont overload the network at all, but it will increase the fault-tolerance of the system. Moreover, you can put HB on the every data link that you have in your system.
B. How many NIC card is required for nodes synchronization on each node?
In 3 nodes configuration you need to have 2 NICs on each server for Synchronization channel purposes.
C. What will be the purpose for the two switches? Is one for heartbeat (and/or SAN traffic) and the other one for synchronization?
We recommend to have only directly connected NICs on the SyncChannel. Having everything doubled obviously increasing fault-tolerance of hte system since element B will pickup functionality of element A in event of its failure.
D. Do you have a diagram for 3 nodes?
Here it goes. This one is made by me and soon we will get the documents with similar config.

- scheme.jpg (63.97 KiB) Viewed 6255 times
As you can see there is only one switch here, so this is really basic configuration, and it is recommended to have it doubled. Basically you have SyncChannel (Red), iSCSI client connection (Green) and Hyper-V traffic (blue). You can put hte HeartBeat on all the data links except SyncChannel.