Your receiver checks if there is at least one character in the serial buffer. Then it reads three. How well do you think that is going to work? Remember serial is very very slow compared to the Arduino. You can do a thousand things while you are waiting for the next serial character to arrive.
Then (it appears to) only does it once. What if you didn't start the transmitter at exactly the right time? Getting the two to synchronise is impossible with that scheme.
Read Robin's thread. It may seem unnecessarily complex, but that is actually the simplest way to do it. There are no reliable shortcuts for proper reception of serial.