How to render a contact form as rendered entity
Use https://www.drupal.org/project/contact_storage.

It provides a view builder for contact forms that displays the form.

It also results in contact messages being stored, among many other optional features. If you do not want that, then you can re-use the code from it for the view builder and add it yourself.