Для такой цель можно использовать модуль concurrent.futures, и тогда это будет выглядеть примерно вот так
import subprocess
from concurrent.futures import ThreadPoolExecutor
def run_command(command):
subprocess.run(command)
subprocess.run(["command1"]) # начало выполнения скрипта
# Создаем ThreadPoolExecutor с 2 потоками
with ThreadPoolExecutor(max_workers=2) as executor:
executor.submit(run_command, ["command2"]) # 2 и 3 выполнить одновременно (параллельно)
executor.submit(run_command, ["command3"])
subprocess.run(["command4"]) # начинает выполнять эту команду после выполнения команд 2 и 3