Answer to my own question : NO NEED to have its own server to implement inapp subscriptions. An own server simply allows to add a level of security but I don't really care about security in my specific case (no problem if 1% of people bypass the inapp process).
An own server allows to perform some additional level of checking with the 'boolean verifyDeveloperPayload(Purchase p)' method. Simply return 'true' in all cases as it is set by default in the Google example.
To implemeent subscriptions simply call :
mHelper.launchSubscriptionPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener);
instead of :
mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, payload);
Crete a subscription item in the dev console.
And that is it !
EDIT SEPTEMBER 2020:
I don't know is it is still true with the V3 of the API... Indeed, the doc mentions that the app must manage the account 'hold status' but I don't know if a server and using RTDN/PubSub is now required.
EDIT OCTOBER 2020:
Confirmed that no server is required even with API V3. See here