The docstring of make-comint-in-buffer
(C-hfmake-comint-in-buffer
RET) states the following
(make-comint-in-buffer NAME BUFFER PROGRAM &optional STARTFILE &rest SWITCHES) Make a Comint process NAME in BUFFER, running PROGRAM. If BUFFER is nil, it defaults to NAME surrounded by `*'s. If there is a running process in BUFFER, it is not restarted. PROGRAM should be one of the following: - a string, denoting an executable program to create via `start-file-process' - a cons pair of the form (HOST . SERVICE), denoting a TCP connection to be opened via `open-network-stream' - nil, denoting a newly-allocated pty. ... If PROGRAM is a string, any more args are arguments to PROGRAM.
So the correct way to use the function is to have the only name of the program as a string and pass the arguments to be passed to the program, as additional arguments to make-comint-in-buffer
as follows
(apply 'make-comint-in-buffer "tool" buffer "/usr/bin/python3.3" nil "tool-name" "arg0")