Не совсем понятно, зачем создавать несколько объектов Request и почему бы не делать все запросы в рамках одного.
Но если действительно так надо - твой вариант не так уж и плох.
Можно скрыть инициализацию объекта в функции:
function getRequestFactory() {
const ws = initWSConnection();
return () => { return new Request(ws) }
}
Можно еще что-то придумать....