Le texte s'écrit caractère par caractère parce que tu le reçois caractère par caractère.
Dès qu'un caractère est reçu, tu vides le tampon de réception, tu affiches le caractère et tu remets le pointeur à 0.
Si au lieu de tester Serial.available() > 0 tu testais Serial.available() > 2 tu afficherais le texte 3 caractères par 3 caractères.