After lot's of debug found that This issue in Magento 2.3.3 Default version.
In order to prevent this bug on 2.3.3, you need to update "vendor\magento\module-store\etc
or override :
magento2/app/code/Magento/Store/etc/di.xml
and comment to hashGenerator
then the store switcher works for logged in customers.
Before
<type name="Magento\Store\Model\StoreSwitcher">
<arguments>
<argument name="storeSwitchers" xsi:type="array">
<item name="cleanTargetUrl" xsi:type="object">Magento\Store\Model\StoreSwitcher\CleanTargetUrl</item>
<item name="manageStoreCookie" xsi:type="object">Magento\Store\Model\StoreSwitcher\ManageStoreCookie</item>
<item name="managePrivateContent" xsi:type="object">Magento\Store\Model\StoreSwitcher\ManagePrivateContent</item>
<item name="hashGenerator" xsi:type="object">Magento\Store\Model\StoreSwitcher\HashGenerator</item>
</argument>
</arguments>
</type>
After:
<type name="Magento\Store\Model\StoreSwitcher">
<arguments>
<argument name="storeSwitchers" xsi:type="array">
<item name="cleanTargetUrl" xsi:type="object">Magento\Store\Model\StoreSwitcher\CleanTargetUrl</item>
<item name="manageStoreCookie" xsi:type="object">Magento\Store\Model\StoreSwitcher\ManageStoreCookie</item>
<item name="managePrivateContent" xsi:type="object">Magento\Store\Model\StoreSwitcher\ManagePrivateContent</item>
<!-- <item name="hashGenerator" xsi:type="object">Magento\Store\Model\StoreSwitcher\HashGenerator</item> -->
</argument>
</arguments>
</type>