with ProcessPoolExecutor() as executor:
future1 = executor.submit(function1, arg1, arg2)
future2 = executor.submit(function2, arg1)
future3 = executor.submit(function3, arg1)
for future in as_completed([future1, future2, future3]):
if future == future1:
res1 = future.result()
elif future == future2:
res2 = future.result()
elif future == future3:
res3 = future.result()