GNU parallel can read csv directly, and has item replacement built in.
More or less directly taken from man parallel:
parallel --csv my_cmd --arg1 {2} --arg2 {1} --arg3 {3} :::: file.csv
(on debian and fedora, it's in the package called parallel, not in moreutils or moreutils-parallel)
Thank you, Ole Tange!