This function seems to do what you requested:
(defun arg-forward ()
"Move point forward until we hit an argument separator, the comma, colon, semicolon"
(interactive)
(condition-case nil
(let ((separator-regexp "[,:;]"))
(forward-sexp)
(while (not (or (looking-at (format "[ \t]*%s" separator-regexp))
(save-excursion (forward-char -1)
(looking-at (format "[]\"')}]*[ \t]*%s " separator-regexp)))))
(forward-sexp))
(if (looking-at separator-regexp)
(forward-char 1))
;; going forward one sexp and back puts point at front of sexp
;; essentially skipping the whitespace, but also ensuring we don't
;; jump out of a larger closing set of parentheses
(forward-sexp)
(forward-sexp -1))
(error
(beep)
(message "At end of argument list"))))