Вы можете удалить оболочки из вызова - вы запускаете оболочку для запуска CMD (еще одна оболочка) для запуска adb. Только не ставьте shell=True
и не удаляйте CMD из звонка.
for device in ['device1', 'device2', 'device3', 'device4']:
subprocess.Popen(['adb', '-s', device, 'shell', 'input', 'tap', '350', '530'])
Это должно быть быстрее, потому что вместо вызова 3 процессов на вызов вы вызываете только один.