DMARC records can be implemented separately on subdomains, however this can get a little complicated.
For an email sent from email@example.com, the DMARC record on the subdomain abc.example.com will take precedence over the Top Level Domains’ (example.com) DMARC record. However, for an email sent from firstname.lastname@example.org, the DMARC record of abc.example.com will not apply, rather the DMARC record on the main domain (example.com) will apply here.
For an email sent by a subdomain, that subdomain’s DMARC record applies. But a subdomain DMARC record doesn’t apply to it’s further subdomains (subdomains of the subdomain).
Consider the following example ‘from addresses’ along with the DMARC query performed by the recipients.
The first scenario is the most simplest, where the From domain is a TLD (email@example.com), and hence the domain example.com being queried for authentication of the DMARC record.
The second scenario is where the subdomain, abc.example.com, is being used to send emails. The recipient will first query the DMARC record, if any, at the subdomain level. If no DMARC record is found, then it will query the TLD (example.com) and verify that DMARC record.
The third scenario can be a little tricky. The email is being sent from a subdomain of the subdomain, def.abc.example.com, where the recipient MailServer would first query the DMARC record on the subdomain level def.abc.example.com. If no DMARC is found, the second DMARC query will be on the TLD, example.com, instead of the subdomain abc.example.com.
In short, DMARC can be configured separately on a subdomain. However, it will not apply to a subdomain of the subdomain.