Facing issues when using ansible 2.16 with python 3.11

I am facing below issue when gathering facts with ansible 2.16. As we are upgrading our environment from ansible 2.14 to ansible 2.16.

TASK [Gathering Facts] *************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => changed=false
  ansible_facts: {}
  failed_modules:
    ansible.legacy.setup:
      exception: |-
        Traceback (most recent call last):
          File "/root/.ansible/tmp/ansible-tmp-1770954071.9596925-56009-84847984617131/AnsiballZ_setup.py", line 107, in <module>
            _ansiballz_main()
          File "/root/.ansible/tmp/ansible-tmp-1770954071.9596925-56009-84847984617131/AnsiballZ_setup.py", line 99, in _ansiballz_main
            invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
          File "/root/.ansible/tmp/ansible-tmp-1770954071.9596925-56009-84847984617131/AnsiballZ_setup.py", line 47, in invoke_module
            runpy.run_module(mod_name='ansible.modules.ansible.legacy.setup', init_globals=dict(_module_fqn='ansible.modules.ansible.legacy.setup', _modlib_path=modlib_path),
          File "<frozen runpy>", line 226, in run_module
          File "<frozen runpy>", line 98, in _run_module_code
          File "<frozen runpy>", line 88, in _run_code
          File "/tmp/ansible_ansible.legacy.setup_payload_xfjj0shm/ansible_ansible.legacy.setup_payload.zip/ansible/modules/ansible/legacy/setup.py", line 175, in <module>
        ModuleNotFoundError: No module named 'ansible.modules.ansible.module_utils'
      failed: true
      module_stderr: |-
        Traceback (most recent call last):
          File "/root/.ansible/tmp/ansible-tmp-1770954071.9596925-56009-84847984617131/AnsiballZ_setup.py", line 107, in <module>
            _ansiballz_main()
          File "/root/.ansible/tmp/ansible-tmp-1770954071.9596925-56009-84847984617131/AnsiballZ_setup.py", line 99, in _ansiballz_main
            invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
          File "/root/.ansible/tmp/ansible-tmp-1770954071.9596925-56009-84847984617131/AnsiballZ_setup.py", line 47, in invoke_module
            runpy.run_module(mod_name='ansible.modules.ansible.legacy.setup', init_globals=dict(_module_fqn='ansible.modules.ansible.legacy.setup', _modlib_path=modlib_path),
          File "<frozen runpy>", line 226, in run_module
          File "<frozen runpy>", line 98, in _run_module_code
          File "<frozen runpy>", line 88, in _run_code
          File "/tmp/ansible_ansible.legacy.setup_payload_xfjj0shm/ansible_ansible.legacy.setup_payload.zip/ansible/modules/ansible/legacy/setup.py", line 175, in <module>
        ModuleNotFoundError: No module named 'ansible.modules.ansible.module_utils'
      module_stdout: ''
      msg: |-
        MODULE FAILURE
        See stdout/stderr for the exact error
      rc: 1
  msg: |-
    The following modules failed to execute: ansible.legacy.setup```

I am using virtual env. Let me know incase you need more information