How can a three-base codon evolve from a two-base codon?
It is not suggesting a 2-base->3-base code in the way you are thinking, but of a non-coding, two-coding triplet pattern occurring first.

This means you would have 16 different coding sequences with 4 possible spacing bases in between.

Later, the spacing bases could become used as part of the code.

Does that make more sense?
Instead of AA,CG becoming AAT,CGT; AAX,CGX becomes AAT,CGT etc.

Its also likely that between 2 and 3 base codes a 2 base pyrimidine/purine system was used. Today the third base can often be switched for its pyrimidine/purine pair without changing the resulting amino acid.