Also check if the next simplistic opinion still has sense.
Some kinds of deadlocks mean “please wait while I am busy”, representing occasional transient phenomena. You should consider reducing this effect according to various techniques. In addition, it was recommended to intercept such errors programmatically, and retry the operation: https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2005/ms177453(v=sql.90). A series of SQL errors advises “retry the transaction” or “rerun the transaction”: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-events-and-errors. You can follow these suggestions.
The retry loops can be implemented on client side (which is probably easier) or in SQL: https://learn.microsoft.com/en-us/previous-versions/sql/legacy/aa175791(v=sql.80).