With a hand-held mixer or in a stand mixer with the paddle attached, cream together the butter, shortening, sugar and cream cheese until light and fluffy, around 2-3 minutes. Use a rubber spatula to scrape down the sides a few times in between to ensure everything is evenly mixed.
Add the vanilla extract and mix in.
Take the bowl off the stand mixer, and add the flour and 2 tbsp of soy or non-dairy milk.
Using a fork, mix, adding a tiny bit of soy milk as necessary, until you have a cohesive ball of dough. Don't overwork the dough -- stop mixing as soon as the dough comes together.
Divide the dough into two halves. Using the palms of your hands, roll each half into a smooth log, about six inches in length and 1 3/4 inches in diameter. Wrap a piece of parchment paper around each log and twist the ends tightly, like a piece of candy.
Refrigerate both logs for at least an hour so they firm up.
Preheat your oven to 350 degrees.
Take the chilled log of dough and using a very sharp knife slice into 12 round cookies. Repeat with the second log.
Place the cookies about 1-inch apart on a baking sheet (you can spray lightly with some oil, if you like). Sprinkle the tops of the cookies with some granulated sugar.
Bake, one sheet at a time, until the cookies are lightly golden brown around the edges. Start checking 15 minutes after baking. If the cookies are turning colour around the edges, take them out.
Transfer the cookies to a rack with a spatula and cool thoroughly before eating.