Don't confuse your source data with what actually gets written to a file.
PPM3 is not represented by 3 bytes per pixel. Well, not in the stored form. You store them as text files. 3 digits (255 for example) stored as text is 3 bytes (a byte per character). Not 1. And I'm not even regarding the white space there.
PPM6 is stored as binary with indeed 3 bytes per pixel. It will therefore always be smaller.