Run subprocesses as promises