standard way to authenticate parties with public keys without certificates
Without an out-of-band channel, no.

If all Alice has only a public key , she can't tell the difference between Bob's key and Mallory's.  Hence Mallory can mount a man in the middle attack.

To prevent this you either need a certificate or a a trusted  out of band channel though which you conform the key. The channel could be something that is harder to man in the middle ( e.g. the phone network) which you use to exchange key fingerprints, it could be an in person meeting(some people of pgp fingerprints on their business cards), or it could be that you remember the key from the last time you connected ( which only prevents subsequent man in the middle attacks)

A somewhat novel  application of this is used the ZRTP key agreement protocol used in VOIP.
ZRTP generates a short authentication string(SAS) based on the user's keys.  Bob can read that SAS to Alice and assuming Mallory can't forge Bob's voice in realtime, the channel is secure and the key is authenticated.