I like to imagine the reason soap is called "Johnny" is not bc that's his name, but because Price was already John
And whenever someone said "John," both would react.
Price had been there longer, so they couldn't rename him bc he's already John
So, Soap got stuck with Johnny