You are using extra parentheses after defn args vector. It should be:
(defn r[e]
(load-string
(reduce
(fn[x c]
(s/replace x #"([\+\-\*\/] (\(.*\) \d+|\d+ \d+))" "($0)"))
e
(subvec (s/split e #"\d") 1))))
user=> (r "+ 3 5")
8