That seems like cumbersome, lengthy code. This is one of the reason why I created the Browserist package as an extension to Selenium so you don't have to hassle with ActionChains and other details.
Find more information about methods to open tabs and windows in the documentation.
Maybe something like this would work?
from browserist import Browser
with Browser() as browser:
browser.window.open.new_tab("https://example.com", "tab_1")
browser.window.open.new_tab("https://google.com", "tab_2")
browser.window.switch_to("tab_1")
In full disclosure, I'm the author of the Browserist package. Browserist is lightweight, less verbose extension of the Selenium web driver that makes browser automation even easier.
Simply install the package with pip install browserist and you're ready to go.
Also, note that you often don't need explicit or implicit waits like WebDriverWait when using Browserist. Before interacting with any element, it simply waits for it to be active, which leads to leaner, more efficient code. For instance, you only need this to click a button:
browser.click.button("//*[@class='css-vurnku'][1]")