I was trying to do the same , i assume you must have solved this till now , but for any other person having the same problem , its likely a problem because those three dots are hidden and cant be found by selenium in dom , its only visible when you hover over the visual or container , or click over the container , so after the table has been located
act.move_to_element(table_element).perform()
kebab = wait.until(EC.presence_of_element_located((
By.XPATH,
f"//h3[normalize-space(text())='{visual_title}']/ancestor::visual-container[1]"
"//button[@data-testid='visual-more-options-btn']"
)))
kebab.click()
you can provide your xpath accordingly with the ancestor , but its simple action chains , that we first detect the visual , then we click on it , after that the three dots are visible and then we click on it