You are passing one long argument to --extra-vars since it's all within the same " marks. You are building a single string of var1=1 arg1 arg2 arg3.
Your intention was likely to instead pass three arguments, each one a string that look like var1=1 var2=2 var3=3
With that said, try this.
ansible-playbook /path/to/playbook.yml --extra-vars "var1=1" "$@" > /path/to/log/file
This way you are passing the first arg as the string "var1=1" and then bash expands "$@" into the individual arguments that you've passed to the program.
So with the above snippet ./test.bs var2=2 var3=3 will properly execute. For sanity though it's good practice to wrap your args in " though in this case its not necessary. It's good to get in the habit though since one day you'll run ./test.bs var2=* and get some crazy output. So the final, most sane, call would be...
./test.bs "var2=2" "var3=3"
"$@"expands to multiple separate arguments. Thus,"var1=1 var2=2" "var3=3"