Expanding @lawlist's comment above, here's how to do it with `cl-letf`.

Let's start with a simple example: you have a function `foo` which calls a function `bar` with an argument (`foo` is the analog of the `yas-new-snippet` function in your case and `bar` is the analog of `switch-to-buffer`) and I want to change `foo` to call a different function `baz` instead (the analog of `switch-to-buffer-other-window` in your case), but from the "outside". So here are the three functions:

```lang-el
  (defun foo ()
    (bar "foo"))

  (defun bar (x)
    (message (format "%s:%s" "bar" x)))

  (defun baz (x)
    (message (format "%s:%s" "baz" x)))

  (foo) ---> "bar:foo"

```
Define a new function that (effectively) calls `baz` instead of `bar` - that's the analog of your `my/yas-new-snippet` function:

```lang-el
  (defun my/foo ()
    (cl-letf (((symbol-function 'bar) #'baz))
      (foo)))
```

Now when I call `my-foo`, it calls `baz` instead of `bar`:

```lang-el
(my-foo) ----> "baz:foo"
```
Note that we are not touching `foo` at all. We are just temporarily modifying the function cell of the `bar` symbol to hold the `baz` function instead. We then call `foo` which *thinks* it's calling `bar`, but we have pulled a switcheroo and it's (effectively) calling `baz` instead. And then we are out of scope of `cl-letf` and everything is back the way it was.

So in your case, you can do this:

```lang-el
(defun my/yas-new-snippet (&optional no-template)
  (cl-letf (((symbol-function 'switch-to-buffer) #'switch-to-buffer-other-window))
     (yas-new-snippet no-template)))
```
I haven't actually tested this (I *did* test the toy example above), so I hope this works but I'm reasonably sure that it will.

Since we are using the old `yas-new-snippet` function inside the new function, you should *not* override the old function with the new one: that would cause an infinite descent. Instead, just bind the new function to whatever key the old function was bound to: you need both functions to stick around.

Here's a [question](https://emacs.stackexchange.com/questions/3450/whats-the-correct-replacement-for-flet-on-new-emacsen) with more information and here is [Malabarba's article](http://endlessparentheses.com/understanding-letf-and-how-it-replaces-flet.html) that is linked from one of the answers to that question. I found both of these very illuminating.