Создавать соединения постоянно, конечно, не надо. Пока вам достаточно одного соединения с базой можно хранить объект соединения. Для нескольких соединений нужен connection pool. Про его создание в документации libpqxx пишут, что
spoiler
If you want to have multiple concurrent transactions, let them work on different connections. An easy way to do this is to set up a connection pool: create a bunch of lazyconnection objects, all initialized with the same connection string. Connections of this type will set themselves up only when they are actually used, so there is no big cost to creating more than you're going to use.
В реальном продакшне для таких целей используют
pgbouncer