This solution will avoid double blank lines
:g/.\n\n\@!/norm o
The magic happens because we are denying a consecutive new line with \n\@!
:%s/^/\=(line(".")%3==0?"\n":"")/g
The first parentesis is a ternary operator wich will retun a new line "\n"
or a blank line ""
depending on the Mod of the line number line(".")
by 3. In case it is true the beginning of line
is substituted by a new line.