Velcro might do the trick.
I wasn't sure if that would be strong enough
Jennifer, you can buy "Industrial Strength" velcro at Home Depot.
Yes, a couple of Velcro pieces on the sofa and cushion. You'll need to do some measuring and double-checking of how it will fit together correctly, but will be worth the effort. Velcro now is available in beige, white and black so could purchase a small amount in the color that will be least noticeable if at all.
The chaise on my sofa has Velcro to hold it in place. It doesn't work really good, but I do have three kids lol It's a long and wide piece.
Self adhesive velcro strips would work well.